iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 2
0
自我挑戰組

Codewar 進進出出 JS/Ruby系列 第 2

1 2 3 麥克風測試

  • 分享至 

  • xImage
  •  

題目:
(7 級) Testing 1-2-3
你的團隊正在開發一個精美的文字編輯器,而你的任務是為每一行文字加上編號。編號從 1 開始,格式為 n: string,注意之間的冒號和空格。

範例:

number([])              => []
number(["a", "b", "c"]) => ["1: a", "2: b", "3: c"]

思考方式:

  1. 參數是陣列,回傳值也是陣列,且陣列長度不變,可以直接使用 map 方法
  2. 陣列裡的每個 element 都有自己的 index 能取用
  3. 每個 string element 加上 index + 1 就是該行編號

Ruby 解法

def number lines
  # google 後發現 map 可以跟 with_index 一起使用
  # 就能同時拿到每個 element 以及其 index
  lines.map.with_index {|char, index|
	
    # 使用 string literal 回傳要求的格式
    "#{index + 1}: #{char}"
  }
end

Ruby -- map.with_index 參考資料
Ruby - string literal 參考資料


JavaScript 解法

var number = function(array) {
  // JavaScript 的 map 可以直接取得 index
  return array.map((el, index) => {
	
    // 感謝 ES6 提供的 Template literals,寫起來就跟 Ruby 一樣順手
    return `${index + 1}: ${el}`;
  });
}

Javascript -- map 參考資料
Javascript -- Template literals 參考資料


上一篇
你是平方嗎?
下一篇
UAV to the Right!!!
系列文
Codewar 進進出出 JS/Ruby30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言